package com.designPattern.decorator;

/**
 * 【装饰者模式】
 * 【原理】将被装饰的对象作为成员变量放到被装饰的对象中（聚合）
 * 被装饰过的对象可以做为下一个被装饰的对象 被装饰
 * 【优点】需要创建新的装饰类或者被装饰类就只需要创建新对应的类然后分别继承
 * 装饰类和被装饰类
 * 不需要想第一种方法那样每次创建一个类就要创建额外多的类
 */
public class Decorator extends Drink{
    Drink drink;

    public Decorator(Drink drink) {
        this.drink = drink;
    }

    @Override
    public float cost() {
        return getPrice() + drink.cost();
    }

    @Override
    public String getDes() {


        return super.getDes() +","+ drink.getDes();

    }
}
